cocos2dx3.x加载瓦片地图TiledMap

您所在的位置:网站首页 cocos 地图 跑动 cocos2dx3.x加载瓦片地图TiledMap

cocos2dx3.x加载瓦片地图TiledMap

2024-07-10 14:06| 来源: 网络整理| 查看: 265

1.瓦片地图

就我个人理解所谓瓦片地图即由许多地图砖块拼成的整体的地图,这样的好处就是对不同地貌的地图块可以设置不同的属性,比如墙壁和河流显然是不能直接穿过的,而整体的地图显然要设置这样的属性就显得非常的麻烦。

2.制作瓦片地图

我是采用Tield,下面是一张960x640的瓦片地图

3.加载瓦片地图

cocos2dx提供了TMXTiledMap类加载瓦片地图,具体代码如下:

const auto mapLayer = TMXTiledMap::create("GameMap.tmx"); mapLayer->setPosition(Vec2(124, 0)); this->addChild(mapLayer); const char* layers[] = { "wall","enemytype1","enemytype2","enemytype3","door","key","hp" }; for (int k = 0; k < 7; k++) { const auto layer = mapLayer->getLayer(layers[k]); for (int i = 0; i < 30; i++) { for (int j = 0; j < 20; j++) { auto layerSprite = layer->getTileAt(Vec2(i, j)); if (layerSprite) { layerSprite->setTag(k + 1); const auto spriteBody = PhysicsBody::createBox(Size(32, 32), PhysicsMaterial(0.0f, 0.0f, 0.0f)); if (k != 0) { spriteBody->setContactTestBitmask(1); } spriteBody->setDynamic(false); layerSprite->setPhysicsBody(spriteBody); } } } }

前三行为一般的地图加载代码,后面的代码用于对不同类型的瓦片设置属性。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3